import request from '@/utils/request.js' // 从request导入封装了axios请求的函数，request是一个函数
// 文章 - 获取详情
export const detailAPI = ({ artId }) => request({
  url: `/v1_0/articles/${artId}`
})

// 文章 - 反馈 - 不感兴趣
export const dislikeArticleAPI = ({ articleId }) => request({
  url: '/v1_0/article/dislikes',
  method: 'POST',

  data: {
    target: articleId
  }
})

// 文章 - 反馈 - 举报文章
export const reportArticleAPI = ({ artId, type }) => request({
  url: '/v1_0/article/reports',
  method: 'POST',

  data: {
    target: artId,
    type,
    remark: '这个好难，我整半天不会'
  }
})

// 评论 - 获取评论 // 获取更多评论
export const commentListAPI = ({ id, offset = null, limit = 10 }) => request({
  url: '/v1_0/comments',
  params: { // axios只针对params参数，如果发现键值对值为null,会忽略此参数名和值不携带在url?后面
    type: 'a', // 什么时候需要外面传： 该值会变化
    source: id,
    offset,
    limit
  }
})
// 评论点赞
export const commentLikingAPI = ({ comId }) => request({
  url: '/v1_0/comment/likings',
  method: 'POST',
  data: {
    target: comId
  }
})
// 取消评论点赞
export const commentDislikingAPI = ({ comId }) => request({
  url: `/v1_0/comment/likings/${comId}`,
  method: 'DELETE'
})
// 发布评论
export const sendCommentAPI = ({ id, content, art_id = null }) => {
  // 1.axios中，data请求体传参，如果值为null，不会忽略该参数，一样会传给后台
  // 只有params 遇到null才会忽略
  const obj = {
    target: id,
    content
  }
  if (art_id !== null) { // 如果本次有第三个参数，证明是对评论进行回复
    // 此时就给obj 添加一条参数art_id
    obj.art_id = art_id
  }
  return request({
    url: '/v1_0/comments',
    method: 'POST',
    data: obj
  })
}
